<?php

/** 
 * $Id$
 * 
 * @author Claudio Corlatti
 * 
 * 
 */
class CuentasCostos {
	
	function __construct() {
	
	}
	
	public function grabarCostosEfectivo($idCaja, $idArticulo, $idCliente, $dolares, $tipoDeCambio, $efectivo){
		try {
			
			$costos = new Costos();
			$costos['idArticulo'] = $idArticulo;
			$costos['IdProveedor'] = $idCliente;
			$costos['estado'] = 0;
			$costos['idCaja'] = $idCaja;
			
			
			$costosItemPesos = new Costositem();
			$costosItemPesos['idItem'] = $idArticulo;
			$costosItemPesos['idProveedor'] = $idCliente;
			$costosItemPesos['costo'] = $efectivo;
			$costosItemPesos['cambio'] = 1;
			$costosItemPesos['monedaId'] = 1;
			
			$costosItemDolares = new Costositem();
			$costosItemDolares['idItem'] = $idArticulo;
			$costosItemDolares['idProveedor'] = $idCliente;
			$costosItemDolares['costo'] = $dolares;
			$costosItemDolares['cambio'] = $tipoDeCambio;
			$costosItemDolares['monedaId'] = 2;
			
			
			$cuentasPesos = new Cuentas();
			$cuentasPesos['idItem'] = $idArticulo;
			$cuentasPesos['idMovimiento'] = $this->getIdMovimiento($idCliente);
			$cuentasPesos['importe'] = $efectivo;
			$cuentasPesos['tipoCambio'] = 1;
			$cuentasPesos['idMoneda'] = 1;
			
			$cuentasDolares = new Cuentas();
			$cuentasDolares['idItem'] = $idArticulo;
			$cuentasDolares['idMovimiento'] = $this->getIdMovimiento($idCliente);;
			$cuentasDolares['importe'] = $dolares;
			$cuentasDolares['tipoCambio'] = $tipoDeCambio;
			$cuentasDolares['idMoneda'] = 2;
			
			
			$costos->Costositem[]= $costosItemPesos;
			$costos->Costositem[] = $costosItemDolares;
			
			$costos['Cuentas'][0] = $cuentasPesos;
			$costos['Cuentas'][1] = $cuentasDolares;
			
			$costos->save();
						
		} catch (Exception $e){
			throw $e;
		}
	}

	
	public function grabarCostoCheque($idCaja, $idArticulo, $idCliente, $importe, $tipoDeCambio){
		try {
			
			$tipoDeCambio = $tipoDeCambio == '' ? 0 : $tipoDeCambio;
			
			$costos = new Costos();
			$costos['idArticulo'] = $idArticulo;
			$costos['IdProveedor'] = $idCliente;
			$costos['estado'] = 0;
			$costos['idCaja'] = $idCaja;
			
			$costosItemPesos = new Costositem();
			$costosItemPesos['idItem'] = $idArticulo;
			$costosItemPesos['idProveedor'] = $idCliente;
			$costosItemPesos['costo'] = $importe;
			$costosItemPesos['cambio'] = $tipoDeCambio;
			$costosItemPesos['monedaId'] = 1;
			
			$cuentasPesos = new Cuentas();
			$cuentasPesos['idItem'] = $idArticulo;
			$cuentasPesos['idMovimiento'] = $this->getIdMovimiento($idCliente);
			$cuentasPesos['importe'] = $importe;
			$cuentasPesos['tipoCambio'] = $tipoDeCambio;
			$cuentasPesos['idMoneda'] = 1;		
			
			$costos->Costositem[]= $costosItemPesos;	
			$costos->Cuentas[] = $cuentasPesos;
			
			$costos->save();
						
		} catch (Exception $e){
			throw $e;
		}	
	}
	
	public function grabarCostosChequeCartera($idCaja, $idArticulo, $idCliente, $cheques){
		try {
			
			$costos = new Costos();
			$costos['idArticulo'] = $idArticulo;
			$costos['IdProveedor'] = $idCliente;
			$costos['estado'] = 0;
			$costos['idCaja'] = $idCaja;
			
			$caja = new Caja();
			foreach($cheques as $c){
				$cheque = $caja->getChequeEnCartera($c['id']);
				
				$costosItem = new Costositem();
				$costosItem['idItem'] = $idArticulo;
				$costosItem['idProveedor'] = $idCliente;
				$costosItem['costo'] = $cheque['importe'];
				$costosItem['cambio'] = $cheque['tipoDeCambio'];
				$costosItem['monedaId'] = $cheque['idMoneda'];
				$costos->Costositem[]= $costosItem;
				
				$cuentas = new Cuentas();
				$cuentas['idItem'] = $idArticulo;
				$cuentas['idMovimiento'] = $this->getIdMovimiento($idCliente);
				$cuentas['importe'] = $cheque['importe'];
				$cuentas['tipoCambio'] = $cheque['tipoDeCambio'];
				$cuentas['idMoneda'] = $cheque['idMoneda'];
				$costos->Cuentas[] = $cuentas;
					
			}
			
			$costos->save();
						
		} catch (Exception $e){
			throw $e;
		}
	}	
	
	public function getIdMovimiento($idCliente){
		$result = 1;
		try {
			$dao = Doctrine::getTable('Movimientodecaja');
			$proveedor = $dao->find($idCliente);
			if($proveedor['tipo'] == 8){
				$result = 2;
			} else {
				$result = 1;
			}
		} catch(Exception $e){
			throw $e;
		}
		return $result;
	}
}

?>
